import java.util.Scanner;
import java.util.Arrays;
public class test {
    /*假设你是一位很棒的家长，想要给你的孩子们一些小饼干。但是，每个孩子最多只能给一块饼干。
    对每个孩子 i，都有一个胃口值 g[i]，这是能让孩子们满足胃口的饼干的最小尺寸；
    并且每块饼干 j，都有一个尺寸 s[j] 。如果 s[j] >= g[i]，我们可以将这个饼干 j 分配给孩子 i ，
    这个孩子会得到满足。你的目标是满足尽可能多的孩子，并输出这个最大数值。*/
    public static int compare(int[] g,int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int resultcount=0;
        int i=0;
        int j=0;
        while(i<g.length && j<s.length){
            if(g[i]<=s[j]){
                resultcount++;
                i++;
                j++;
            }
            else{
               j++;
            }
        }
        return resultcount;
    }
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] g=new int[n];
        for(int i=0;i<n;i++){
            g[i]=sc.nextInt();
        }
        int m=sc.nextInt();
        int[] s=new int[m];
        for(int i=0;i<m;i++){
            s[i]=sc.nextInt();
        }
        int countchild=compare(g,s);
        System.out.println(countchild);
    }
}
